
#include "widget.h"
#include "./ui_widget.h"


Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);

    //初始化界面和场景
    mGameView.setSceneRect(QRect(0,0,800,600));//游戏主界面大小
    mScene.setSceneRect(QRect(0,0,800,600));//场景大小
    //mScene.setBackgroundBrush (QBrush(qRgb (173,241,174)));//场景颜色（暂定）


    //给背景和轨道设置图片
    mTrack1.setPixmap(QPixmap(":/img/TrackA75.png"));
    mTrack2.setPixmap(QPixmap(":/img/TrackA75.png"));
    mTrack3.setPixmap(QPixmap(":/img/TrackA75.png"));
    mTrack4.setPixmap(QPixmap(":/img/TrackA75.png"));
    mBackground.setPixmap(QPixmap(":/img/Pbackground.png"));//临时，到时候做接口
    QGraphicsBlurEffect *e0 = new QGraphicsBlurEffect(this);
    e0->setBlurRadius(30);
    mBackground.setGraphicsEffect(e0);

    //初始化分数
    mScore = new QGraphicsTextItem;
    auto score = QString("%1").arg(Score, 7, 10, QLatin1Char('0'));
    mScore->setPlainText(score);
    mScore->setDefaultTextColor(QColor(255,255,255));//颜色
    mScore->setFont(QFont("Courier New",23,100));//字体

    //初始化难度
    mLv = new QGraphicsTextItem;
    auto lv = QString("Lv.%1").arg(Lv);
    mLv->setPlainText(lv);
    mLv->setDefaultTextColor(QColor(0,0,0));//颜色
    mLv->setFont(QFont("Courier New",20,60));//字体

    //初始化谱面名称
    mPName = new QGraphicsTextItem;
    auto Pname = QString("無人区-Vacuum Track#ADD8E6");//临时名称字符串（到时候会封装在谱面类中）
    mPName->setPlainText(Pname);
    mPName->setDefaultTextColor(QColor(0,0,0));//颜色
    mPName->setFont(QFont("Courier New",14,80));//字体

    //初始化combo标签
    mCombo->setDefaultTextColor(QColor(255,255,255));//颜色
    mCombo->setFont(QFont("Dosis",50,80));//字体

    //初始化连击数
    mComboNum = new QGraphicsTextItem;
    auto Combonum = QString("%1").arg(ComboNum);//临时连击数字符串（到时候会封装在谱面类中）
    mComboNum->setPlainText(Combonum);
    mComboNum->setDefaultTextColor(QColor(255,255,255));//颜色
    mComboNum->setFont(QFont("Dosis",45,80));//字体

    //初始化各个元素的位置
    mBackground.setPos(0,0);
    mTrack1.setPos(300,0);//各轨道位置
    mTrack2.setPos(380,0);
    mTrack3.setPos(460,0);
    mTrack4.setPos(540,0);
    mScore->setPos(640,0);//分数位置
    mLv->setPos(700,565);//难度位置
    mPName->setPos(0,565);//谱面名称位置
    mCombo->setPos(60,150);

    qreal width1 = mCombo->boundingRect().width();//"Combo"宽度
    qreal width2 = mComboNum->boundingRect().width();//ComboNum宽度
    mComboNum->setPos(60+width1/2-width2/2,230);//初始化ComboNum位置(居中)


    mScene.addItem(&mBackground);//设置背景图到场景
    mScene.addItem(&mTrack1);//设置轨道到场景
    mScene.addItem(&mTrack2);
    mScene.addItem(&mTrack3);
    mScene.addItem(&mTrack4);
    mScene.addItem(mScore);//设置分数标签到场景
    mScene.addItem(mLv);//设置难度标签到场景
    mScene.addItem(mPName);//设置谱面名称标签到场景
    mScene.addItem(mCombo);//设置Combo标签到场景
    mScene.addItem(mComboNum);//设置连击数标签到场景
    mGameView.setScene(&mScene);//添加场景到视图
    mGameView.setParent(this);//设置视图的父类
}

Widget::~Widget()
{
    delete ui;
}


